home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
MATHEMAT
/
STATISTI
/
0850C.ZIP
/
SET1-3.ARC
/
TUKEY.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1979-12-31
|
6KB
|
179 lines
VAR I,J,SWITCH4,D,DF1,NG,DF,NUMSAMPS:INTEGER;
MH,MST,HSD,HSD1,MS,COEFF:REAL;
NVAR1,NVAR2,NVAR3,NVAR4,NVAR5,NVAR6,NVAR7,NVAR8,NVAR9,NVAR10:REAL;
SWITCH3,C:CHAR;
SWITCH2:BOOLEAN;
N:ARRAY [1..5000] OF INTEGER;
M:ARRAY [1..5000] OF REAL;
PROCEDURE FINDCRITICALVALUES (DEGFREE:INTEGER);
VAR TEMP1,TEMP2:REAL;
PROCEDURE VALS(NV1,NV2,NV3,NV4,NV5,NV6,NV7,NV8,NV9,NV10:REAL);
BEGIN
NVAR1:=NV1;
NVAR2:=NV2;
NVAR3:=NV3;
NVAR4:=NV4;
NVAR5:=NV5;
NVAR6:=NV6;
NVAR7:=NV7;
NVAR8:=NV8;
NVAR9:=NV9;
NVAR10:=NV10;
END;
PROCEDURE LOOKUP (DF:INTEGER);
BEGIN
CASE DF OF
1: VALS (3.64,4.60,5.22,5.67,6.03,6.33,6.58,6.80,6.99,7.17);
2: VALS (3.46,4.34,4.90,5.30,5.63,5.90,6.12,6.32,6.49,6.65);
3: VALS (3.34,4.16,4.68,5.06,5.36,5.61,5.82,6.00,6.16,6.30);
4: VALS (3.26,4.04,4.53,4.89,5.17,5.40,5.60,5.77,5.92,6.05);
5: VALS (3.20,3.95,4.41,4.76,5.02,5.24,5.43,5.59,5.74,5.87);
6: VALS (3.15,3.88,4.33,4.65,4.91,5.12,5.30,5.46,5.60,5.72);
7: VALS (3.11,3.82,4.26,4.57,4.82,5.03,5.20,5.35,5.49,5.62);
8: VALS (3.08,3.77,4.20,4.51,4.75,4.95,5.12,5.27,5.39,5.51);
9: VALS (3.06,3.73,4.15,4.45,4.69,4.88,5.05,5.19,5.32,5.43);
10: VALS (3.03,3.70,4.11,4.41,4.64,4.83,4.99,5.13,5.25,5.36);
11: VALS (3.01,3.67,4.08,4.37,4.59,4.78,4.94,5.08,5.20,5.31);
12: VALS (3.00,3.65,4.05,4.33,4.56,4.74,4.90,5.03,5.15,5.26);
13: VALS (2.98,3.63,4.02,4.30,4.52,4.70,4.86,4.99,5.11,5.21);
14: VALS (2.97,3.61,4.00,4.28,4.49,4.67,4.82,4.96,5.07,5.17);
15: VALS (2.96,3.59,3.98,4.25,4.47,4.65,4.79,4.92,5.04,5.14);
16: VALS (2.95,3.58,3.96,4.23,4.45,4.62,4.77,4.90,5.01,5.11);
17: VALS (2.92,3.53,3.90,4.17,4.37,4.54,4.68,4.81,4.92,5.01);
18: VALS (2.89,3.49,3.85,4.10,4.30,4.46,4.60,4.72,4.82,4.92);
19: VALS (2.86,3.44,3.79,4.04,4.23,4.39,4.52,4.63,4.73,4.82);
20: VALS (2.83,3.40,3.74,3.98,4.16,4.31,4.44,4.55,4.65,4.73);
21: VALS (2.80,3.36,3.68,3.92,4.10,4.24,4.36,4.47,4.56,4.64);
22: VALS (5.70,6.98,7.80,8.42,8.91,9.32,9.67,9.97,10.24,10.48);
23: VALS (5.24,6.33,7.03,7.56,7.97,8.32,8.61,8.87,9.10,9.30);
24: VALS (4.95,5.92,6.54,7.01,7.37,7.68,7.94,8.17,8.37,8.55);
25: VALS (4.75,5.64,6.20,6.62,6.96,7.24,7.47,7.68,7.86,8.03);
26: VALS (4.60,5.43,5.96,6.35,6.66,6.91,7.13,7.33,7.49,7.65);
27: VALS (4.48,5.27,5.77,6.14,6.43,6.67,6.87,7.05,7.21,7.36);
28: VALS (4.39,5.15,5.62,5.97,6.25,6.48,6.67,6.84,6.99,7.13);
29: VALS (4.23,5.05,5.50,5.84,6.10,6.32,6.51,6.67,6.81,6.94);
30: VALS (4.26,4.96,5.40,5.73,5.98,6.19,6.37,6.53,6.67,6.79);
31: VALS (4.21,4.89,5.32,5.63,5.88,6.08,6.26,6.41,6.54,6.66);
32: VALS (4.17,4.84,5.25,5.56,5.80,5.99,6.16,6.31,6.44,6.55);
33: VALS (4.13,4.79,5.19,5.49,5.72,5.92,6.08,6.22,6.35,6.46);
34: VALS (4.10,4.74,5.14,5.43,5.66,5.85,6.01,6.15,6.27,6.38);
35: VALS (4.07,4.70,5.09,5.38,5.60,5.79,5.94,6.08,6.20,6.31);
36: VALS (4.05,4.67,5.05,5.33,5.55,5.73,5.89,6.02,6.14,6.25);
37: VALS (4.02,4.64,5.02,5.29,5.51,5.69,5.84,5.97,6.09,6.19);
38: VALS (3.96,4.55,4.91,5.17,5.37,5.54,5.69,5.81,5.92,6.02);
39: VALS (3.89,4.45,4.80,5.05,5.24,5.40,5.54,5.65,5.76,5.85);
40: VALS (3.82,4.37,4.70,4.93,5.11,5.26,5.39,5.50,5.60,5.69);
41: VALS (3.76,4.28,4.59,4.82,4.99,5.13,5.25,5.36,5.45,5.53);
42: VALS (3.70,4.20,4.50,4.71,4.87,5.01,5.12,5.21,5.30,5.37);
END;
END;
BEGIN
LOOKUP (DEGFREE);
IF NG=2 THEN HSD:=NVAR1;
IF NG=3 THEN HSD:=NVAR2;
IF NG=4 THEN HSD:=NVAR3;
IF NG=5 THEN HSD:=NVAR4;
IF NG=6 THEN HSD:=NVAR5;
IF NG=7 THEN HSD:=NVAR6;
IF NG=8 THEN HSD:=NVAR7;
IF NG=9 THEN HSD:=NVAR8;
IF NG=10 THEN HSD:=NVAR9;
IF NG=11 THEN HSD:=NVAR10;
HSD:=HSD*SQRT(MS/MH);
WRITELN ('HONEST SIGNIFICANT DIFFERENCE AT .05 = ',HSD:8:3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'HONEST SIGNIFICANT DIFFERENCE AT .05 = ',HSD:8:3);
END;
LOOKUP (DEGFREE+21);
IF NG=2 THEN HSD1:=NVAR1;
IF NG=3 THEN HSD1:=NVAR2;
IF NG=4 THEN HSD1:=NVAR3;
IF NG=5 THEN HSD1:=NVAR4;
IF NG=6 THEN HSD1:=NVAR5;
IF NG=7 THEN HSD1:=NVAR6;
IF NG=8 THEN HSD1:=NVAR7;
IF NG=9 THEN HSD1:=NVAR8;
IF NG=10 THEN HSD1:=NVAR9;
IF NG=11 THEN HSD1:=NVAR10;
HSD1:=HSD1*SQRT(MS/MH);
WRITELN ('HONEST SIGNIFICANT DIFFERENCE AT .01 = ',HSD1:8:3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'HONEST SIGNIFICANT DIFFERENCE AT .01 = ',HSD1:8:3);
END;
FOR I:=1 TO NG-1 DO
FOR J:=I TO NG-1 DO
BEGIN
MST:=M[I]-M[J+1];
WRITELN ('DIFFERENCE OF MEAN ',I:3,' AND MEAN ',J+1:3,' IS ',MST:8:3);
IF MST>HSD THEN WRITELN (' ':15,'SIGNIFICANT *');
IF MST>HSD1 THEN WRITELN (' ':15,'SIGNIFICANT **');
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'DIFFERENCE OF MEAN ',I:3,' AND MEAN ',J+1:3,' IS ',MST:8:3);
IF MST>HSD THEN WRITELN (LST,' ':15,'SIGNIFICANT *');
IF MST>HSD1 THEN WRITELN (LST,' ':15,'SIGNIFICANT **');
END;
END;
END;
BEGIN
REPEAT
WRITELN ('TUKEY TEST');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'TUKEY TEST');
END;
WRITE ('NUMBER OF GROUPS = ');
READLN (NG);
WRITE ('MEAN SQUARED ERROR OF GROUPS = ');
READLN (MS);
WRITE ('DF OF THE ERROR TERM = ');
READLN (DF1);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF GROUPS = ',NG);
WRITELN (LST,'MEAN SQUARED ERROR OF GROUPS = ',MS:8:3);
WRITELN (LST,'DF OF THE ERROR TERM = ',DF1);
END;
FOR I:=1 TO NG DO
BEGIN
WRITE ('ENTER NUMBER OF SAMPLES IN MEAN ',I:3,' = ');
READLN (N[I]);
WRITE ('ENTER MEAN ',I:3,' = ');
READLN (M[I]);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER NUMBER OF SAMPLES IN MEAN ',I:3,' = ',N[I]);
WRITELN (LST,'ENTER MEAN ',I:3,' = ',M[I]:8:3);
END;
END;
MH:=0;
FOR I:=1 TO NG DO
MH:=MH+(1/N[I]);
MH:=NG/MH;
D:=DF1;
NUMSAMPS:=D;
IF D>119 THEN NUMSAMPS:=21;
IF D>59 THEN NUMSAMPS:=20;
IF D>39 THEN NUMSAMPS:=19;
IF D>29 THEN NUMSAMPS:=18;
IF D>23 THEN NUMSAMPS:=17;
IF D>19 THEN NUMSAMPS:=16;
IF D<20 THEN NUMSAMPS:=D-4;
FINDCRITICALVALUES (NUMSAMPS);
WRITE ('DO YOU WANT ANOTHER RUN, (Y/N): ');
READLN (C);
WHILE NOT (C IN ['Y','y','n','N']) DO
BEGIN
WRITE ('TYPE Y FOR YES, OR N FOR NO: ');
READLN (C)
END;
SWITCH2:=C IN ['N','n'];
UNTIL SWITCH2
END.